﻿&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	УстановитьДоступность();

КонецПроцедуры

&НаКлиенте
Процедура УстановитьДоступность()
	
	ДоступностьКоманд = ЗначениеЗаполнено(Объект.ИдентификаторПользователяИБ)
		И СистемаВзаимодействия.ИспользованиеДоступно();
		
	Если ДоступностьКоманд Тогда
		
		ИдентификаторПользователя = ПолучитьИдентификаторПользователя(Объект.ИдентификаторПользователяИБ);
		ДоступностьКоманд = ИдентификаторПользователя <> Неопределено;

	КонецЕсли;
	
	Элементы.ФормаВидеоЗвонок.Доступность = ДоступностьКоманд
		И СистемаВзаимодействия.ВидеоконференцииДоступны();
		
	Элементы.ФормаСообщение.Доступность = ДоступностьКоманд
		И ИдентификаторПользователя <> СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
		
КонецПроцедуры

&НаСервере
Функция ПолучитьИдентификаторПользователя(ИдентификаторПользователяИБ)
	#Если Не (МобильноеПриложениеСервер Или МобильныйАвтономныйСервер Или ВнешнееСоединение) Тогда
	Попытка
		Возврат СистемаВзаимодействия.ПолучитьИдентификаторПользователя(ИдентификаторПользователяИБ);
	Исключение
		Возврат Неопределено;
	КонецПопытки;
	#Иначе
	Возврат Неопределено;
	#КонецЕсли
КонецФункции

&НаКлиенте
Процедура ВидеоЗвонок(Команда)
	
	ИдентификаторПользователя = ПолучитьИдентификаторПользователя(Объект.ИдентификаторПользователяИБ);
	ИдентификаторТекущегоПользователя = СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
	
	Участники = Новый КоллекцияИдентификаторовПользователейСистемыВзаимодействия();
	Участники.Добавить(ИдентификаторТекущегоПользователя);
	
	Если ИдентификаторПользователя <> ИдентификаторТекущегоПользователя Тогда
		
		Участники.Добавить(ИдентификаторПользователя);
		
	КонецЕсли;
	
	СистемаВзаимодействия.ВидеоконференцияАсинх(Участники, , 
		ИдентификаторПользователя = ИдентификаторТекущегоПользователя);

КонецПроцедуры

&НаСервере
Функция ПолучитьНавигационнуюСсылкуОбсуждения()
	#Если Не (МобильноеПриложениеСервер Или МобильныйАвтономныйСервер Или ВнешнееСоединение) Тогда
	ИдентификаторПользователя = ПолучитьИдентификаторПользователя(Объект.ИдентификаторПользователяИБ);
	ИдентификаторТекущегоПользователя = СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
	
	Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
	Обсуждение.Групповое = Ложь;
	Обсуждение.Участники.Добавить(ИдентификаторПользователя);
	Обсуждение.Участники.Добавить(ИдентификаторТекущегоПользователя);
	Обсуждение.Записать();
	
	Возврат ПолучитьНавигационнуюСсылку(Обсуждение);
	#Иначе
	Возврат Неопределено;
	#КонецЕсли
КонецФункции

&НаКлиенте
Процедура Сообщение(Команда)
	
	НавигационнаяСсылка = ПолучитьНавигационнуюСсылкуОбсуждения();
	Если НавигационнаяСсылка <> Неопределено Тогда
		ПерейтиПоНавигационнойСсылке(НавигационнаяСсылка);
	КонецЕсли;
	
КонецПроцедуры
